#include <functional>
#include <unordered_map>
using namespace std;

enum
{
    DIVISION_ZERO = 1,
    MODULO_ZERO
};

string op = "+-*/%";

class Task
{
public:
    Task(int data1, int data2, char oper)
        : data1_(data1), data2_(data2), oper_(oper)
    {
        hash_.insert( {'+',[](int x, int y)->int{return x + y;}});
        hash_.insert( {'-',[](int x, int y)->int{return x - y;}});
        hash_.insert( {'*',[](int x, int y)->int{return x * y;}});
        hash_.insert( {'/',[](int x, int y)->int{return x / y;}});
        hash_.insert( {'%',[](int x, int y)->int{return x % y;}});
    }

    void operator()()
    {
        result_ = hash_[oper_](data1_, data2_);
    }

    string getans()
    {
        string ans(to_string(data1_));
        ans += " ";
        ans += oper_;
        ans += " ";
        ans += to_string(data2_);
        ans += " = ";
        ans += to_string(result_);

        return ans;
    }

private:
    int data1_;
    int data2_;
    char oper_;

    int result_ = 0;
    //int exitcode_ = 0;
    unordered_map<char, function<int(int, int)>> hash_;
};